﻿using DFGK_WMS.Model.Dto;
using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK.IService
{
    public interface IInventoryAdjustService
    {
        /// <summary>
        /// 添加库存调整
        /// </summary>
        /// <param name="m"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool AddInventoryAdjust(InventoryAdjust m, out string message);

        /// <summary>
        /// 删除库存调整
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        bool DelInventoryAdjust(long id);

        /// <summary>
        /// 修改库存调整
        /// </summary>
        /// <param name="m"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool UpdInventoryAdjust(InventoryAdjust m, out string message);

        /// <summary>
        /// 根据主键获取对象信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        InventoryAdjust? GetInventoryAdjustById(long id);

        /// <summary>
        /// 南宁补货审核
        /// </summary>
        /// <param name="m"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool UpdInventoryAdjustStatus(AuditDto m,out string message);

        #region 南宁
        /// <summary>
        /// 获取库存调整列表
        /// </summary>
        /// <param name="order"></param>
        /// <param name="type"></param>
        /// <param name="status"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        List<InventoryAdjust> GetInventoryAdjustList(string? order, int type, int status, int pageIndex, int pageSize, out int totalCount);

        /// <summary>
        /// 添加库存调整（南宁项目补货业务使用）
        /// </summary>
        /// <param name="list"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool AddInventoryAdjustList(List<InventoryAdjust> list, out string message);

        /// <summary>
        /// 根据主键获取集合信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        List<InventoryAdjust> GetInventoryAdjustListById(long id);
        #endregion
    }
}
